let musiclist = []
// 正在播放歌曲的index
let nowPlayingIndex = 0
// 获取全局唯一的背景音频管理器
const backgroundAudioManager = wx.getBackgroundAudioManager()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    picUrl: '', // 歌曲图片
    isPlaying: false, // 音频是否播放标志位
    isLyricShow: false,  // 歌词是否显示标志为
    lyric: '',
  },

  timeUpdate(event) {
    this.selectComponent('.lyric').update(event.detail.currentTime)
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(options)
    musiclist = wx.getStorageSync('musiclist')
    nowPlayingIndex = options.index
    this._loadMusicDetail(options.musicId)
  },

  onChangeLyricShow () {
    this.setData({
      isLyricShow: !this.data.isLyricShow
    })
  },

  // 获取当前播放的音乐数据
  _loadMusicDetail(musicId) {
    backgroundAudioManager.stop()
    let music = musiclist[nowPlayingIndex]
    console.log(music)
    wx.setNavigationBarTitle({
      title: music.name
    })

    this.setData({
      picUrl: music.al.picUrl,
      isPlaying: false
    })

    wx.showLoading({
      title: '歌曲加载中',
    })

    // 调用云函数，获取歌曲信息
    wx.cloud.callFunction({
      name: 'music',
      data: {
        musicId,
        $url: 'musicUrl'
      }
    }).then((res) => {
      // console.log(res)
      // console.log(music)
      const musicInfo = res.result.data[0]
      backgroundAudioManager.src = musicInfo.url // 要播放歌曲的 url
      backgroundAudioManager.title = music.name // 要播放歌曲的歌 名字      
      backgroundAudioManager.coverImgUrl = music.al.picUrl // 要播放歌曲的 封面图片
      backgroundAudioManager.singer = music.ar[0].name // 要播放歌曲的 歌手名字
      backgroundAudioManager.epname = music.al.name // 要播放歌曲的 专辑名字

      // 获取到歌曲数据后，将 isPlaying 改为 true，表示正在播放
      this.setData({
        isPlaying: true
      })

      wx.hideLoading()

      // 加载歌词
      wx.cloud.callFunction({
        name: 'music',
        data: {
          musicId,
          $url: 'lyric'
        }
      }).then((res) => {
        console.log(res)
        let lyric = '暂无歌词'
        const lrc = res.result.lrc && res.result.lrc.lyric
        if (lrc) {
          lyric = lrc
        }
        this.setData({
          lyric
        })
      })
    })
  },

  // 切换播放和暂停
  togglePlaying() {
    if (this.data.isPlaying) {
      backgroundAudioManager.pause()
    } else {
      backgroundAudioManager.play()
    }
    this.setData({
      isPlaying: !this.data.isPlaying
    })
  },

  // 上一首
  onPrev() {
    nowPlayingIndex--
    if (nowPlayingIndex < 0) {
      nowPlayingIndex = musiclist.length - 1
    }
    this._loadMusicDetail(musiclist[nowPlayingIndex].id)
  },

  // 下一首
  onNext() {
    nowPlayingIndex++
    if (nowPlayingIndex === musiclist.length) {
      nowPlayingIndex = 0
    }
    this._loadMusicDetail(musiclist[nowPlayingIndex].id)
  }
})